home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / mac / files / dsp / 56000tar.z / 56000tar / 56000 / flts / iir4.hlp < prev    next >
Text File  |  1991-11-26  |  2KB  |  74 lines

  1. 2 IIR4
  2.          Name: IIR4.ASM
  3.          Type: Assembler Macro
  4.       Version: 1.0
  5.  Date Entered:  15-Jul-87
  6.   Last Change:  15-Jul-87
  7.  
  8.   Description: Second Order Direct Canonic Filter
  9.  
  10.   This macro implements a second order filter with a minimum of
  11.   delay elements.  The difference equation relating the output
  12.   to the input is:
  13.  
  14.       y(n) = a(1)y(n-1) + a(2)y(n-2) + x(n) + b(1)x(n-1) + b(2)x(n-2)
  15.  
  16.    with z transform:
  17.  
  18.                           -1       -2    
  19.         Y(z)     1 + b(1)z  + b(2)z
  20.       ------- = ----------------------
  21.         X(z)              -1       -2
  22.                  1 - a(1)z  - a(2)z
  23.  
  24.   where:
  25.     x(n)  = input sample at time nT
  26.     y(n)  = output of the filter at time nT
  27.     a(n)  = filter coefficient n (magnitude less than one)
  28.     b(n)  = filter coefficient n (magnitude less than one)
  29.       T   = sample period
  30.  
  31.  
  32.   In this example, it is  assumed  that  b(0)=1.   A  network  to
  33.   implement this filter is shown below.
  34.  
  35.      Input                w(n)
  36.  x(n) >----(+)--------------------------(+)-----> y(n)
  37.             ^              |             ^      Output
  38.             |     a(1)    1/z    b(1)    |
  39.            (+)<-- 0.8 -----|---- 0.4 -->(+)
  40.             ^              v             ^
  41.             |     a(2)    1/z    b(2)    |
  42.            (+)<-- -0.3 ----|--- -0.6 -->(+)
  43.  
  44.  
  45.   For the above filter, the memory map  for  the  filter
  46.   states and the coefficients is shown below.
  47.  
  48.            r0
  49.            |
  50.            v
  51.        -------------------
  52.   X:   |        |        |
  53.        | w(n-1) | w(n-2) | Filter States
  54.        -------------------
  55.  
  56.        -------------------------------------
  57.   Y:   |  a(1)  |  a(2)  |  b(1)  |  b(2)  |
  58.        |  .8    |  -.3   |  .4    |  -.6   | Filter Coefficients
  59.        -------------------------------------
  60.            ^
  61.            |
  62.            r4        m0=3 (mod 4)
  63.  
  64.                Memory Map for the Biquad Filter
  65.  
  66.   The address register r0 is initialized pointing to  the  first
  67.   filter  state  and  r4  is  initialized pointing to the filter
  68.   coefficients.  Modulo register m0 is  set  to  -1  to  provide
  69.   linear  arithmetic.   Modulo register m4 is set to 3 providing
  70.   modulo 4 arithmetic.
  71.  
  72.   For an example of how to use this filter see the test program IIR4T.ASM
  73.  
  74.